<?php

namespace app\admin\model;

use think\Db;
use think\Model;

class AuthgroupModel extends Model
{

    // 设置数据表（不含前缀）
    protected $name = 'auth_group';
    public function __construct($data = [])
    {
        parent::__construct($data);
        $this->_collection = Db::name($this->name);
    }

    public function getRulesById($id)
    {
        $result = Db::name($this->name)->where('id',$id)->field('rules')->find();
        return $result;
    }

    /**
     * @return mixed
     * @param 选择角色列表
     */
    public function lores(){
        $ruslt = Db::name($this->name)->where('status',1)->field('id,title')->select();
        return $ruslt;
    }


    /**
     * @param array $where
     * @return mixed
     * @param 管理角色列表
     */
    public function lroel($where,$page,$limit){
        $ruslt = Db::name($this->name)->where($where)->page($page)->limit($limit)->order('id desc')->field('id,title,status,createtime')->select();
        return $ruslt;
    }


    /**
     * @param $data
     * @param 添加角色
     */
    public function addction($data){
        // 启动事务
        Db::startTrans();
        try{
            $query = Db::name($this->name)->insert($data);
            // 提交事务
            Db::commit();
            return $query;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            return false;
        }
    }


    /**
     * @param $title
     * @param 验证字段唯一
     */
    public function titleone(){
        $query = Db::name($this->name)->where('status',1)->field('title,id')->select();
        return $query;
    }


    /**
     * @param $id
     * @param 删除角色
     */
    public function delect($id){
        // 启动事务
        Db::startTrans();
        try{
            $query = Db::name($this->name)->where('id',$id)->delete();
            // 提交事务
            Db::commit();
            return $query;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            return false;
        }
    }


    /**
     * @param $id
     * @param $data
     * @param 修改角色
     */
    public function editction($where,$data){
        // 启动事务
        Db::startTrans();
        try{
            $query = Db::name($this->name)->where($where)->update($data);
            // 提交事务
            Db::commit();
            return $query;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            return false;
        }
    }


    /**
     * @param $where
     * @param 获取角色状态
     */
    public function exbut($where){
        $query = Db::name($this->name)->where($where)->find();
        return $query;

    }


    /**
     * @param $where
     * @param $data
     * @param 修改角色状态
     */
    public function eidtion($where,$data){
        // 启动事务
        Db::startTrans();
        try{
            $query = Db::name($this->name)->where($where)->update($data);
            // 提交事务
            Db::commit();
            return $query;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            return false;
        }
    }


    /**
     * @param $id
     * @param 获取权限集合
     */
    public function Authos($id){
        $query = Db::name($this->name)->where('id',$id)->field('rules')->find();
        return array('id'=>$id,'data'=>$query);
    }


    /**
     * @param $where
     * @param $data
     * @param 修改权限
     */
    public function saveauth($where,$data){
        // 启动事务
        Db::startTrans();
        try{
            $query = Db::name($this->name)->where($where)->update($data);

            // 提交事务
            Db::commit();
            return $query;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            return false;
        }
    }


    /**
     * @return mixed
     * @param 获取总条数
     */
    public function county(){
        $ruslt = Db::name($this->name)->where('status',1)->count();
        return $ruslt;
    }


    /**
     * @param 获取角色类型
     */
    public function usertype($where){
        $query = Db::name($this->name)->where($where)->field('title')->find();
        return $query;
    }

}